1 <div id="contacts" class="page-layout simple left-sidenav inner-sidenav">
 
   4     class="header md-accent-bg"
 
   6     layout-align="space-between center"
 
   9     <div layout="row" layout-align="start center">
 
  10       <div class="logo" layout="row" layout-align="start center">
 
  11         <span class="logo-icon">
 
  12           <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>
 
  14         <span class="logo-text" translate="CONTACTMANAGER.CONTACTS"
 
  22     <div class="search-input-wrapper" layout="row" layout-align="start center">
 
  24         <md-icon md-font-icon="icon-magnify"></md-icon>
 
  26       <md-input-container md-no-float class="m-0">
 
  29           placeholder="Search for anyone"
 
  31           ng-model="vm.query.filter"
 
  32           ng-model-options="{ debounce: 1000 }"
 
  34           translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE"
 
  44     ng-show="vm.selectedContacts.length > 0"
 
  45     class="selected-bar header animate-slide-down md-accent-bg"
 
  47     layout-align="start center"
 
  49     <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">
 
  50       <md-button layout="row" layout-align="start center">
 
  51         <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>
 
  52         <span translate="CONTACTMANAGER.BACK">Back</span>
 
  56     <div flex layout="row" layout-align="space-between center">
 
  58         <span class="selected-contacts-count">
 
  59           <span>{{vm.selectedContacts.length}}</span>
 
  60           <span translate="CONTACTMANAGER.SELECTED">selected</span>
 
  63         <md-menu class="select-menu" ng-if="!vm.currentThread">
 
  65             class="md-icon-button"
 
  66             ng-click="$mdOpenMenu($event)"
 
  67             aria-label="multi select toggle"
 
  69             translate-attr-aria-label="CONTACTS.MULTI_SELECT_TOGGLE"
 
  71             <md-icon md-font-icon="icon-menu-down"></md-icon>
 
  73           <md-menu-content width="3">
 
  76                 ng-click="vm.selectAllContacts()"
 
  77                 translate="CONTACTMANAGER.SELECT_ALL"
 
  84                 ng-click="vm.deselectContacts()"
 
  85                 translate="CONTACTMANAGER.SELECT_NONE"
 
  94       <div class="multi-select-actions">
 
  96           class="md-icon-button"
 
  97           ng-csv="vm.exportSelectedContacts"
 
  99           filename="contacts.csv"
 
 101           <md-icon md-font-icon="icon-file-excel"></md-icon>
 
 104           ng-if="vm.crudPermissions.canDelete"
 
 105           class="md-icon-button"
 
 106           ng-click="vm.deleteSelectedContacts($event)"
 
 107           aria-label="delete selected"
 
 109           translate-attr-label="CONTACTS.DELETE_SELECTED"
 
 111           <md-icon md-font-icon="icon-delete"></md-icon>
 
 116   <!-- / SELECTED BAR -->
 
 119   <div class="content" md-background-bg layout="row" layout-align="start start">
 
 121     <div class="main scrollable" ms-scroll>
 
 123         <div class="column" flex="20">
 
 127                 layout-align="center center"
 
 129                 ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []"
 
 131                 <md-icon md-font-icon="icon-refresh"></md-icon>{{
 
 132                 'CONTACTMANAGER.ALL_CONTACTS' | translate }}
 
 138               <md-input-container class="md-block" flex-gt-sm="">
 
 139                 <label translate="CONTACTMANAGER.SELECT_LIST"
 
 140                   >Select a list</label
 
 143                   placeholder="Select a list"
 
 144                   ng-model="vm.selectedList"
 
 145                   ng-disabled="vm.lists.count === 0"
 
 147                   <md-option ng-value="null"
 
 148                     ><em translate="CONTACTMANAGER.ALL">All</em></md-option
 
 152                     ng-repeat="list in vm.lists.rows"
 
 153                     >{{list.name}}</md-option
 
 156               </md-input-container>
 
 161               <md-input-container class="md-block" flex-gt-sm="">
 
 162                 <label translate="CONTACTMANAGER.SELECT_COMPANY"
 
 163                   >Select a company</label
 
 166                   placeholder="Select a company"
 
 168                   ng-model="vm.selectedCompany"
 
 169                   ng-disabled="vm.companies.count === 0"
 
 171                   <md-option ng-value="null"
 
 172                     ><em translate="CONTACTMANAGER.ALL">All</em></md-option
 
 175                     ng-value="company.id"
 
 176                     ng-repeat="company in vm.companies.rows"
 
 177                     >{{company.name}}</md-option
 
 180               </md-input-container>
 
 185               <md-input-container class="md-block" flex-gt-sm="">
 
 186                 <label translate="CONTACTMANAGER.SELECT_TAGS"
 
 187                   >Select one or more tags</label
 
 191                   placeholder="Select one or more tags"
 
 193                   ng-model="vm.query.tag"
 
 194                   ng-change="vm.getContacts()"
 
 196                   <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows"
 
 197                     >{{tag.name}}</md-option
 
 200               </md-input-container>
 
 207           <md-table-container ng-init="vm.getAssignedCompanies()">
 
 212               ng-model="vm.selectedContacts"
 
 213               md-progress="vm.promise"
 
 217                 md-order="vm.query.sort"
 
 218                 md-on-reorder="vm.getContacts"
 
 221                   <th md-column md-order-by="id">ID</th>
 
 222                   <th md-column md-order-by="firstName">
 
 223                     {{'CONTACTMANAGER.FULLNAME' | translate}}
 
 225                   <th md-column md-order-by="phone">
 
 226                     {{'CONTACTMANAGER.PHONE' | translate}}
 
 228                   <th md-column md-order-by="email">
 
 229                     {{'CONTACTMANAGER.EMAIL' | translate}}
 
 231                   <th md-column md-order-by="createdAt">
 
 232                     {{'CONTACTMANAGER.CREATED_AT' | translate}}
 
 234                   <th md-column md-order-by="ListId">
 
 235                     {{'CONTACTMANAGER.LIST' | translate}}
 
 237                   <th md-column md-order-by="CompanyId">
 
 238                     {{'CONTACTMANAGER.COMPANY' | translate}}
 
 240                   <th md-column md-order-by="tags">
 
 241                     {{'CONTACTMANAGER.TAGS' | translate}}
 
 243                   <th md-column width="10px"></th>
 
 247                 <tr md-row ng-hide="vm.contacts.rows.length">
 
 248                   <td md-cell colspan="8">
 
 249                     <div layout="row" layout-align="center center">
 
 250                       <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO"
 
 251                         >No Available Info</span
 
 260                   ng-repeat="contact in vm.contacts.rows"
 
 263                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 270                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 274                     {{contact.firstName}} {{contact.lastName}}
 
 277                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 284                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 291                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 295                     {{contact.createdAt | date:'medium'}}
 
 298                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 302                     {{vm.listsMap[contact.ListId]}}
 
 305                     ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)"
 
 309                     {{vm.companiesMap[contact.CompanyId]}}
 
 311                   <td md-cell class="tag">
 
 312                     <div ng-if="contact.Tags.length">
 
 314                         ng-if="contact.Tags.length == 1"
 
 316                         layout-align="center center"
 
 319                           md-font-icon="icon-tag"
 
 320                           ng-style="{'color': contact.Tags[0].color }"
 
 322                         <span class="text-truncate"
 
 323                           >{{contact.Tags[0].name}}</span
 
 327                         ng-if="contact.Tags.length > 1"
 
 329                         layout-align="center center"
 
 331                         <md-tooltip md-direction="left" layout="row">
 
 332                           <span ng-repeat="tag in contact.Tags"
 
 333                             >{{tag.name}}<span ng-if="!$last">, </span></span
 
 336                         <md-icon md-font-icon="icon-tag"></md-icon>
 
 343                     ng-if="!vm.crudPermissions.readOnly"
 
 347                         class="md-icon-button"
 
 350                         translate-attr-aria-label="CONTACTMANAGER.MORE"
 
 351                         ng-click="$mdOpenMenu($event)"
 
 353                         <md-icon md-font-icon="icon-dots-vertical"></md-icon>
 
 356                       <md-menu-content width="3">
 
 357                         <md-menu-item ng-if="vm.crudPermissions.canEdit">
 
 359                             ng-click="vm.editdialog(contact, ev)"
 
 360                             translate="CONTACTMANAGER.EDIT_CONTACT"
 
 365                         <md-menu-item ng-if="vm.crudPermissions.canEdit">
 
 367                             ng-click="vm.mergeContact(ev, contact)"
 
 368                             translate="CONTACTMANAGER.MERGE_CONTACT"
 
 373                         <md-menu-item ng-if="vm.crudPermissions.canEdit">
 
 375                             ng-click="vm.duplicateContact(ev, contact)"
 
 376                             translate="CONTACTMANAGER.DUPLICATE_CONTACT"
 
 382                           ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete"
 
 385                         <md-menu-item ng-if="vm.crudPermissions.canDelete">
 
 387                             ng-click="vm.deleteconfirm(contact, ev)"
 
 388                             translate="CONTACTMANAGER.DELETE_CONTACT"
 
 399           </md-table-container>
 
 402             md-label="{page: '{{'CONTACTMANAGER.PAGE' | translate}}:', rowsPerPage: '{{'CONTACTMANAGER.ROWSPERPAGE' | translate}}:', of: '{{'CONTACTMANAGER.OF' | translate}}'}"
 
 403             md-limit="vm.query.limit"
 
 404             md-limit-options="[10, 15, 20, 50, 100, 250]"
 
 405             md-page="vm.query.page"
 
 406             md-total="{{vm.contacts.count}}"
 
 407             md-on-paginate="vm.getContacts"
 
 409           ></md-table-pagination>
 
 411         <!-- / USER TABLE -->
 
 418   <!-- ADD USER BUTTON -->
 
 420     id="add-contact-button"
 
 421     ng-if="vm.crudPermissions.canEdit"
 
 422     ng-hide="vm.options.hidden"
 
 424     md-open="vm.options.isOpen"
 
 425     class="md-scale md-fab"
 
 426     ng-class="{ 'md-hover-full': vm.options.hover }"
 
 427     ng-mouseenter="vm.options.isOpen=true"
 
 428     ng-mouseleave="vm.options.isOpen=false"
 
 431       <md-button aria-label="menu" class="md-fab md-accent">
 
 432         <md-icon md-font-icon="icon-plus"></md-icon>
 
 437         class="md-fab md-mini md-warn"
 
 439         flow-init="vm.ngFlowOptions"
 
 440         flow-files-submitted="$flow.upload()"
 
 441         flow-file-success="vm.importContacts($file, $message, $flow)"
 
 442         flow-file-added="vm.fileAdded($file)"
 
 443         aria-label="Select File"
 
 445         translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS"
 
 449           md-visible="tooltipVisible"
 
 452           {{'CONTACTMANAGER.IMPORT_CONTACTS' | translate}}
 
 454         <md-icon md-font-icon="icon-upload"></md-icon>
 
 457         class="md-fab md-mini md-accent"
 
 458         ng-click="vm.createOrEditContact($event)"
 
 459         aria-label="add contact"
 
 461         translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT"
 
 465           md-visible="tooltipVisible"
 
 468           {{'CONTACTMANAGER.ADD_CONTACT' | translate}}
 
 470         <md-icon md-font-icon="icon-account-plus"></md-icon>
 
 474   <!-- / ADD USER BUTTON -->